package com.loop.netty.buf;

import io.netty.buffer.ByteBuf;
import io.netty.buffer.Unpooled;

/**
 * @author zhangxiaolu
 * @since 2023-09-15 22:31
 */
public class NettyByteBuf01 {

    public static void main(String[] args) {
        // 创建一个ByteBuf
        // 1.创建对象，该对象包含一个数组arr，是要给byte[10]
        // 2.Netty的Buffer中，不需要使用filp进行反转，底层维护了readIndex和writeIndex，读取和写入时，自动维护
        // 3.通过readIndex和writeIndex和Capacity，将buffer分成三个区域；0-readIndex 读取区域；readIndex-writeIndex 可读可写区域；writeIndex-buffer.length 可写区域
        ByteBuf buffer = Unpooled.buffer(10);

        for (int i = 0; i < 10; i++) {
            buffer.writeByte(i);//writeIndex 递增
        }
        System.out.println("capacity: " + buffer.capacity());
        // 输出
        for (int i = 0; i < buffer.capacity(); i++) {
            System.out.println(buffer.getByte(i));// 指定索引获取时readIndex 不变
            System.out.println(buffer.readByte());// readIndex 递增
        }

    }
}
